package GUI;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import mission4propre.AVLTree;
import mission4propre.ConstructeurArbre;
import mission4propre.LivreRef;

public class AnalyseActionListener implements ActionListener {
	
	private JTextField expression;
	private JTextArea expressionDerive;
	private ConstructeurArbre cons;
	private JComboBox box;

	public AnalyseActionListener(JTextField expression2, JTextArea expressionDerive,JComboBox box, ConstructeurArbre arbreCons) {
		this.expression=expression2;
		this.expressionDerive=expressionDerive;
		this.cons=arbreCons;
		this.box=box;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(expression.getText().matches("")){
			expressionDerive.setText("Entrez au moins un titre de revue");
		}
		else{
			//expressionDerive.setText(dico.getAuteurtoString(dico.getLivreRefByRevue(expression.getText())));
			if(box.getSelectedItem().equals("titre")){
				LivreRef.Field=1;
				LivreRef livre= searchByTitle(expression.getText());
				if(livre!=null)
				expressionDerive.setText(livre.toString());
				else 
				expressionDerive.setText("le livre n'existe pas");
			}
			if(box.getSelectedItem()=="num"){
				LivreRef.Field=2;
				LivreRef livre= searchByNum(expression.getText());
				if(livre!=null)
				expressionDerive.setText(livre.toString());
				else 
				expressionDerive.setText("le livre n'existe pas");
			}
			if(box.getSelectedItem()=="rang"){
				LivreRef.Field=3;
				LivreRef livre= searchByRang(expression.getText());
				if(livre!=null)
				expressionDerive.setText(livre.toString());
				else 
				expressionDerive.setText("le livre n'existe pas");
			}
		}
		
		
	}
	
	private LivreRef searchByNum(String num) {
		AVLTree avl = cons.generate();
		return (LivreRef) avl.find(new LivreRef());
	}

	public LivreRef searchByTitle(String title){
		AVLTree avl = cons.generate();
		LivreRef livre =new LivreRef();
		livre.setNum(title);
		return (LivreRef) avl.find(livre);
	}
	public LivreRef searchByRang(String title){
		AVLTree avl = cons.generate();
		LivreRef livre =new LivreRef();
		livre.setRang(title);
		return (LivreRef) avl.find(livre);
	}
	
	

}
